## 第10课 画地为牢智能车

### 项目介绍：

前面我们详细的介绍了智能车上各个传感器、模块、扩展板的使用方法。在这里我们可以结合前面课程中知识制作一个画地为牢智能车。实验中，我们通过循迹传感器检测智能车底部是否存在黑线，然后根据检测结果控制两个电机的转动，从而把智能车关在黑线圈中即画地为牢。

### 流程图：

画地为牢智能车具体逻辑如下表格。

| 检测 | 中循迹传感器 | 检测到黑线：高电平 | 检测到黑线：高电平 |
| --- | --- | --- | --- |
| 检测 | 中循迹传感器 | 检测到白线：低电平 | 检测到白线：低电平 |
| 检测 | 左循迹传感器 | 检测到黑线：高电平 | 检测到黑线：高电平 |
| 检测 | 左循迹传感器 | 检测到白线：低电平 | 检测到白线：低电平 |
| 检测 | 右循迹传感器 | 检测到黑线：高电平 | 检测到黑线：高电平 |
| 检测 | 右循迹传感器 | 检测到白线：低电平 | 检测到白线：低电平 |
| 条件 | 条件 | 条件 | 状态 |
| 左循迹传感器没检测到黑线 且中循迹传感器没检测到黑线且右循迹传感器没检测到黑线 | 左循迹传感器没检测到黑线 且中循迹传感器没检测到黑线且右循迹传感器没检测到黑线 | 左循迹传感器没检测到黑线 且中循迹传感器没检测到黑线且右循迹传感器没检测到黑线 | 前进（PWM设为200） |
| 左循迹传感器检测到黑线 或者中循迹传感器检测到黑线 或者右循迹传感器检测到黑线 | 左循迹传感器检测到黑线 或者中循迹传感器检测到黑线 或者右循迹传感器检测到黑线 | 左循迹传感器检测到黑线 或者中循迹传感器检测到黑线 或者右循迹传感器检测到黑线 | 后退（PWM设为200） 然后左旋转（PWM设为200） |

按照前面思路设计好智能车后，我们就需要按照设计思路开始制作智能车。我们需要设计对应的接线，测试代码，然后接线上传代码，运行，确保智能车能够实现理想中的功能。

### 接线图：循迹模块+电机

![](media/image1.png)

### 测试代码：

| ①初始化 | ![](media/image2.png) |
| --- | --- |
| ②设置变量L_pin、M_pin、R_pin为整数并赋值为0 | ![](media/image3.png) |
| ③将三个循迹传感器的值赋值给对应的变量L_pin、M_pin、R_pin中 | ![](media/image4.png) |
| ④判断L_pin、M_pin、R_pin的值是否等于0 | ![](media/image5.png) |
| ⑤4WD小车以PWM200的速度前进 | ![](media/image6.png) |
| ⑥当不满足前面的条件则执行下列代码 | ![](media/image7.png) |
| ⑦4WD小车以PWM200的速度后退500毫秒 | ![](media/image8.png) |
| ⑧4WD小车以PWM200的速度左转800毫秒 | ![](media/image9.png) |

**（在上传程序代码前，需要把蓝牙模块取下，否则代码会上传失败。）**

**完整代码：**

![](media/image10.png)

### 测试结果：

当小车行驶过程中检测到黑线立即后退500毫秒，然后左转800毫秒继续行驶。